add mysql_optional as dsn parameter#1022
Conversation
|
Immediate workaround is to install DBD::mysql, depending on upstream or Percona libmysql, available in Percona repositories. I will check proposed solution, so Percona Toolkit can run with default DBD::mysql, linked to libmariadb3 too. Currently I can only say that you modified auto-generated code that will be rewritten once we create packages or simply update modules. Check CONTRIBUTING.md for how to update modules and create tests for your contributions. |
|
@svetasmirnova I added the option to lib and tests |
There was a problem hiding this comment.
Pull request overview
This PR introduces support for mysql_ssl_optional as a DSN key (o=...) and as a command-line option (--mysql_ssl_optional) for pt-online-schema-change, to work around SSL enforcement behavior changes in Perl DBI on newer Debian releases.
Changes:
- Add DSN key
o(mysql_ssl_optional) to generated DBI connection strings. - Document
--mysql_ssl_optionaland DSN keyoinpt-online-schema-changePOD. - Extend the
pt-online-schema-changetest suite to cover the new option and validate it appears in--help.
Reviewed changes
Copilot reviewed 3 out of 4 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
t/pt-online-schema-change/ssl.t |
Adds new SSL test cases for mysql_ssl_optional via DSN and CLI. |
t/pt-online-schema-change/option_sanity.t |
Adds a help-text assertion for --mysql_ssl_optional. |
lib/DSNParser.pm |
Extends MySQL connection string construction to include DSN key o. |
bin/pt-online-schema-change |
Extends embedded DSN parsing/connection string logic and updates POD for the new option/DSN key. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Adjusted t/pt-online-schema-change/ssl.t, so it checks if secure connection works - Checked --help output for --mysql_ssl_optional together with other options in option_sanity.t
- Added ssl_optional to defaul Sandbox connection string - Added new test case t/pt-online-schema-change/ssl_optional.t for MariaDB-based DBD::mysql - Added check in ssl.t, so it runs for MySQL-based DBD::mysql only
- Updated modules in all tools
- Updated help and magic options in other tools affected - Updated tests in some of other tools
- Added options when they were missed - Updated ssl.t tests
- MariaDB checks better location in ssl.t tests
- Added MariaDB library tests
This pull requests adds
mysql_ssl_optionas an dsn paramter to pt-online-schema-change.Why?
Upgrading debian from bullseye to bookworm or trixie changes the behaviour of perl DBI. As a consequence perl DBI is not able to use ssl anymore when enforced (pt-online-schema-change raises the exception "SSL connection error: Enforcing SSL encryption is not supported").
See: Debian Bug Report 1032074
I found no fix for this (using official sources). The only workaround to make it work is calling pt-online-schema-change with both
mysql_ssl=1andmysl_ssl_optional=1Please advice how and if tests or documentation need to be adjusted.